package com.synergy.stockflow.warehouse.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Schema
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "inventory_transfer")
public class InventoryTransfer {
    /**
     * 调拨单ID
     */
    @TableId(value = "transfer_id", type = IdType.ASSIGN_ID)
    @Schema(description="调拨单ID")
    private String transferId;

    /**
     * 调拨单号(TF-年月序号)
     */
    @TableField(value = "transfer_code")
    @Schema(description="调拨单号(TF-年月序号)")
    private String transferCode;

    /**
     * 调拨单名称
     */
    @TableField(value = "transfer_name")
    @Schema(description="调拨单名称")
    private String transferName;

    /**
     * 调出仓库ID
     */
    @TableField(value = "from_warehouse_id")
    @Schema(description="调出仓库ID")
    private String fromWarehouseId;

    /**
     * 调入仓库ID
     */
    @TableField(value = "to_warehouse_id")
    @Schema(description="调入仓库ID")
    private String toWarehouseId;

    /**
     * 调拨类型(内部调拨, 跨组织调拨)
     */
    @TableField(value = "transfer_type")
    @Schema(description="调拨类型(内部调拨, 跨组织调拨)")
    private String transferType;

    /**
     * 调拨时间
     */
    @TableField(value = "transfer_time")
    @Schema(description="调拨时间")
    private Date transferTime;

    /**
     * 状态(0=待出库,1=已出库,2=已入库)
     */
    @TableField(value = "`status`")
    @Schema(description="状态(0=待出库,1=已出库,2=已入库)")
    private Integer status;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    @Schema(description="创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @Schema(description="创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @Schema(description="更新时间")
    private Date updateTime;
}